/**
 * @file    WebOleClientSite.h
 * @brief   
 * @date    2005-03-15 15:55:23
 * @author  GengYong (gengyong@gmail.com)
 *
 */

#ifndef WEBWINDOW_HEADER_WEBOLECLIENTSITE_H
#define WEBWINDOW_HEADER_WEBOLECLIENTSITE_H
//----------------------------------------------------------

#include "WebWindowImpl.h"
#include "WebOleInPlaceSite.h"
#include "WebDocHostUIHandler.h"
#include "WebDocHostShowUI.h"

namespace xessage_private {
	class WebOleClientSite:public IOleClientSite
	{
	public:
		WebOleClientSite(WebWindowImpl * app);
		virtual ~WebOleClientSite();
	public:
		virtual	HRESULT	STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject);
		virtual ULONG	STDMETHODCALLTYPE AddRef();
		virtual ULONG	STDMETHODCALLTYPE Release();
		virtual HRESULT STDMETHODCALLTYPE SaveObject();
		virtual HRESULT STDMETHODCALLTYPE GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk);
		virtual HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER * ppContainer);
		virtual HRESULT STDMETHODCALLTYPE ShowObject();
		virtual HRESULT STDMETHODCALLTYPE OnShowWindow(BOOL fShow);
		virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout();
	public:
		WebWindowImpl *			m_appImpl;
		LONG					m_refCount;
		WebOleInPlaceSite *		m_inPlaceSite;
		WebDocHostUIHandler *	m_hostUIHandler;
		WebDocHostShowUI *		m_hostShowUI;
	};
}

//----------------------------------------------------------
#endif	//ifndef WEBWINDOW_HEADER_WEBOLECLIENTSITE_H